package com.ruoyi.system.service.impl;

import java.security.Permission;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.YearExamMapper;
import com.ruoyi.system.domain.YearExam;
import com.ruoyi.system.service.IYearExamService;

/**
 * 年度考核Service业务层处理
 * 
 * @author ruoyi
 * @date 2023-11-14
 */
@Service
public class YearExamServiceImpl implements IYearExamService 
{
    @Autowired
    private YearExamMapper yearExamMapper;



    /**
     * 查询年度考核
     * 
     * @param id 年度考核主键
     * @return 年度考核
     */
    @Override
    public YearExam selectYearExamById(Long id)
    {
        return yearExamMapper.selectYearExamById(id);
    }

    /**
     * 查询年度考核列表
     * 
     * @param yearExam 年度考核
     * @return 年度考核
     */
    @Override
    public List<YearExam> selectYearExamList(YearExam yearExam)
    {
        //查询年度考核
        // 首先判断判断登录用户身份
        if(SecurityUtils.hasRole("admin") || SecurityUtils.hasRole("school")){
            YearExam yearExam1 = new YearExam();
            return yearExamMapper.selectYearExamList(yearExam1);
        }
        else if(SecurityUtils.hasRole("director")){
            //部门身份
            //部门身份只能获取本部门的所有用户提交1审核
            yearExam.setProgress("0");
            yearExam.setDeptId(SecurityUtils.getDeptId());
            return yearExamMapper.selectYearExamList(yearExam);
        }
        else if (SecurityUtils.hasRole("party")){
            //党委身份
            yearExam.setProgress("1");
            return yearExamMapper.selectYearExamList(yearExam);
        }
        else if (SecurityUtils.hasRole("common")){
            //普通教职工身份
            //只能看到自己的
            yearExam.setUserId(SecurityUtils.getUserId());
            return yearExamMapper.selectYearExamList(yearExam);
        }

        //管理员可以看到所有人的
        return yearExamMapper.selectYearExamList(yearExam);
    }

    /**
     * 新增年度考核
     * 
     * @param yearExam 年度考核
     * @return 结果
     */
    @Override
    public int insertYearExam(YearExam yearExam)
    {
        yearExam.setCreateTime(DateUtils.getNowDate());
        yearExam.setUserId(SecurityUtils.getUserId());
        yearExam.setDeptId(SecurityUtils.getDeptId());
        yearExam.setUserName(SecurityUtils.getUsername());
        yearExam.setProgress("0");
        return yearExamMapper.insertYearExam(yearExam);
    }

    /**
     * 修改年度考核
     * 
     * @param yearExam 年度考核
     * @return 结果
     */
    @Override
    public int updateYearExam(YearExam yearExam)
    {
        yearExam.setUpdateTime(DateUtils.getNowDate());

        YearExam yearExam1 = yearExamMapper.selectYearExamById(yearExam.getId());

        if(yearExam1.getProgress().equals("0")){
            yearExam.setProgress("1");
        }else if(yearExam1.getProgress().equals("1")){
            yearExam.setProgress("2");
        } else if (yearExam1.getProgress().equals("2")) {
            yearExam.setProgress("3");
        }

        return yearExamMapper.updateYearExam(yearExam);
    }

    /**
     * 批量删除年度考核
     * 
     * @param ids 需要删除的年度考核主键
     * @return 结果
     */
    @Override
    public int deleteYearExamByIds(Long[] ids)
    {
        return yearExamMapper.deleteYearExamByIds(ids);
    }

    /**
     * 删除年度考核信息
     * 
     * @param id 年度考核主键
     * @return 结果
     */
    @Override
    public int deleteYearExamById(Long id)
    {
        return yearExamMapper.deleteYearExamById(id);
    }
}
